P H P   -   Personal Home Page

8.   ordner und dateien

8.8  fseek - datei positionieren

Die funktion positioniert eine datei vor einer lese- oder schreiboperation auf eine beliebige position

fseek($fp, nn , SEEK_SET | SEEK_CUR | SEEK_END);

$fp variable, die einen dateizeiger enthält
nnanzahl der zeichen, um die ab einer position versetzt wird
SEEK_SETversetzen ab dateianfang, nn ist positiv
SEEK_CURversetzen ab der aktuellen position, nn ist positiv oder negativ, d.h. es kann vorwärts oder zurück positioniert werden
SEEK_ENDversetzen ab dateiende, nn ist negativ

ftell - position ermitteln

Die funktion liefert die aktuelle position als ganzzahligen wert.

$pos = ftell($fp)

beispiel
Wirklich praktikabel ist das positionieren eigentlich nur, wenn die datei eine struktur von immer gleich langen teilen hat, wie in dem folgenden beispiel. Hier wird die datei mit "sätzen" von je 40 zeichen erstellt, dabei wird auf das zeilenende-zeichen ganz verzichtet. Satzweise lesen kann man die datei nur, wenn man immer nur teilstücke von 40 zeichen liest, genau das tut die funktion LESEN.

Im beispiel geschieht folgendes: eine datei wird geschrieben und mit der funktion LESEN gelesen und angezeigt. Dann wird die datei zum lesen und schreiben geöffnet, von der position 3 wird ein satz gelesen und an die position 4 geschrieben. Dabei ist zu beachten, dass nach dem lesen oder schreiben eines satzes, die datei auf den nächsten satz positioniert ist. Zuletzt wird die datei noch einmal gelesen, angezeigt und dann gelöscht.

datei wurde geschrieben

das steht in der datei:
eintrag nr. 00001 ************Valentin//
eintrag nr. 00002 *******Rembremerdeng//
eintrag nr. 00003 ***********Karlstadt//
eintrag nr. 00004 ****************Otto//
eintrag nr. 00005 ***********Wrdlbrmft//

satz von position 3 lesen
eintrag nr. 00003 ***********Karlstadt//

an nächste (4.) position schreiben

das steht jetzt an position 4
eintrag nr. 00003 ***********Karlstadt//

das steht in der datei:
eintrag nr. 00001 ************Valentin//
eintrag nr. 00002 *******Rembremerdeng//
eintrag nr. 00003 ***********Karlstadt//
eintrag nr. 00003 ***********Karlstadt//
eintrag nr. 00005 ***********Wrdlbrmft//


zum untermenü


    IMPRESSUM  

    KONTAKT  

    PRIVAT  

    D O K U  


  H T M L  
  C S S  
  p h p
  My S Q L  
  JAVASCRIPT